Digital network-based video tagging with tag filtering

ABSTRACT

A method modifies a tag to be displayed during playback of a video distributed over a computer network. The method may be performed by a server computer on the computer network. The server computer may be part of or operate in conjunction with a social networking site. According to one example, the method compares content of the tag against a database of one or more keywords, such as, for example, profanity; detects at least one matching word in both the content of the tag and the one or more keywords; and performs a modification to data associated with the tag in response to detecting the at least one matching word. The modification may comprise removing a matching word from the content of the tag so that the tag is displayed in a modified form without the matching word during playback of the video.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.11/868,522 filed on Oct. 7, 2007, entitled “DIGITAL NETWORK-BASED VIDEOTAGGING SYSTEM,” the entire disclosure of which is hereby incorporatedby reference herein.

BACKGROUND INFORMATION

Playback of video on digital networks such as the Internet is becomingmore prevalent. In addition to viewing digital video, some sites allowusers to post comments about the video in a bulletin board, “blog,”chat, email or other web page-based format. For example, socialnetworking sites typically allow viewers of a video to post theircomments on a web page from which the video can also be viewed. Thecomments can be displayed in reverse chronological order (most recentfirst) in a list below the video. Once a viewer has watched the videothe viewer can then read the comments and add a new comment, if desired.

Commercial sponsors or other third parties may have a desire toadvertise or otherwise provide information in association with a video.Such ads typically include text or images placed near the video such ascommercial text, banner ads, images, etc. In some cases, theadvertisements may appear for a short time before the video is allowedto play. Or the advertisements may be placed in a small region along thebottom of the video or adjacent to the video while the video is playing.Typically, these advertisements are created by an ad agency andintegrated with the video or with a web page that hosts playback of thevideo.

Although these approaches allow some user and third-party participationto communicate about, or in association with, video content, suchcommunication is limited.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a first example video-tag-handling system based on asocial networking site.

FIG. 2 illustrates a second example video-tag-handling system.

FIG. 3 illustrates a third example video-tag-handling system.

FIG. 4 illustrates a first example video-playback interface suitable foruse with the video-tag-handling systems of FIGS. 1-3.

FIG. 5 illustrates a first example video-tag authoring interface thatmay be activated via the video-playback interface of FIG. 4.

FIG. 6 illustrates a first example video-tag animation interface thatmay be activated via the video-tag authoring interface of FIG. 5.

FIG. 7 illustrates a second video-tag authoring interface, which issuitable for use with the video-tag-handling systems of FIGS. 1-3, andenables users to author, edit, and animate video tags.

FIG. 8 illustrates a third video-tag authoring interface, interface,which is suitable for use with the video-tag-handling systems of FIGS.1-3, and is adapted for use with blogging applications.

FIG. 9 is a flow diagram of a first method suitable for use with thevideo-tag-handling systems and interfaces of FIGS. 1-8.

FIG. 10 is a flow diagram of a second method suitable for use with thevideo-tag-handling systems and interfaces of FIGS. 1-8.

FIG. 11 is a flow diagram of a third method suitable for use with thevideo-tag-handling systems and interfaces of FIGS. 1-8.

FIG. 12 illustrates a system for associating a tag dataset to a videoand for synchronizing additional content included in the tag datasetwith playback of the video.

FIG. 13 illustrates an example tag dataset format.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

A preferred embodiment of the invention allows additional information tobe presented in synchronization with playback of a video. Taginformation includes visual information such as text, images, symbols,etc., and other types of information such as animation or behavior,audio, links to network locations or objects, etc., that is not includedin an original video to which the tags are applied. The tag informationcan be synchronized to appear at specified times and places in the videoand exhibit predetermined behavior when the video is presented to auser. For example, one type of tag can identify items in a video scene,as described in the related patent applications referenced above. Tagdatasets are associated with a video by an identification process andcan be created, edited and maintained separately from associated videos.A synchronization process maintains the desired tag presentation whenplayback of a video is modified with standard video transport controls.

In an example embodiment, a tag controller manages tag datasets that canbe modified by one or more users. Users can create, delete or modifytags and specify how the tags are synchronized to a video. The tagcontroller's functions can include, for example, prohibiting orfiltering information, replacing or adding information, or otherwisemodifying the user-created information. The tag controller can performsuch functions to ensure that undesirable user-generated content is notprovided to other users. The tag controller can also allow third-partyinformation to be included in addition to or in place of user contentwhere it is determined appropriate, or merely desirable, to include suchthird-party information. In a particular embodiment, network linking toobjects or locations (i.e., “hyper-linking”) passes through a centralcontroller so that user behavior (e.g., clicking on a link, visiting awebsite, making a purchase etc.) can be monitored or controlled and usedfor further purposes.

Various embodiments are described including a web-based social network.The social network website embodiment allows a community of users togenerate and modify tags on selected videos for purposes of providinguser discussion; commercial or informational speech; educational orentertaining dialogue, etc.

Associating a Tag Dataset with a Video

FIG. 12 illustrates a system for associating a tag dataset to a videoand for synchronizing additional content included in the tag datasetwith playback of the video. A particular video source can be selectedfrom a collection of multiple video sources 420. One or more tagdatasets from tag dataset collection 430 is identified for associationwith the selected video. The tag dataset includes additional content forpresentation in synchronization with the video playback to user 402 viaplayback engine 440, also referred to as processing system 440, orsimply process 440.

FIG. 12 shows user 402 provided with output devices such as display 404and speaker 406. Display 404 and speaker 406 are used to present imageand audio information to the user 402 as, for example, during thepresentation of digital video content. The digital video content may beany sequence of images displayed to a viewer to create movement ormotion as is known in the art. Any video, movie or animation format(e.g., Motion Picture Experts Group (MPEG), Audio Video Interleave(AVI), Adobe video formats such as FLV, motion JPEG, etc.) can beemployed. Any type of suitable delivery method may be used such asplaying back from a local or remote file, file streaming, etc. Althoughembodiments of the invention are discussed primarily with respect todigital video formats and delivery, other formats or approaches fordisplaying information may also benefit from embodiments discussed andclaimed herein such as analog transmissions, computer rendered(so-called “machinima”) content, animation formats such as Adobe Flash™SWF file formats, Microsoft™ Sparkle and Silverlight formats, etc.

User 402 is also provided with one or more user input devices 414 suchas keyboard 408, mouse 410, remote control 412, etc. In general, anysuitable type of user input mechanism may be employed unless otherwisenoted. User input signals and presentation output signals are controlledby control 442 within playback engine 440. Functions performed byplayback engine 440 may be, for example, performed by processes within adevice such as a personal computer, personal digital assistant (PDA), acell phone, email device, music player, or other presently known orfuture-developed processing device with sufficient presentation (e.g.,display, audio) and user input (if needed) capabilities. Playback enginefunctionality can also be provided in other ways such as within or incooperation with a web page browser, provided by a remote device orprocess via a network, etc.

In some embodiments, presentation of audio information alone, withoutvisual tag content, may benefit from features of the invention. Inapplications where visual display is used, any type of display mechanismmay be used. For example, display goggles, projected images, multipledisplay screens, television screens, or other displays may be employed.

Processing system 440 can include typical processing components (notshown) such as a processor, memory, stored instructions, networkinterface, internal bus, etc. Processing system 440 includessynchronization function 444 which synchronizes tag data such as tagdataset 434 with a video source such as video source 422.

A video source such as video source 422 may be one of many video sources420 such as a video file stored locally (e.g., on a user's device) orstored remotely, such as on a server or other computer system connectedto process 440 via a digital network such as the Internet. The videosource can be controlled by another entity such as an individual orcorporate owner or other or managing entity. Intermediaries may beinvolved in providing the video content to process 440. For example, anInternet Service Provider (ISP), web hosting company, database manager,etc., may be included in the control or transfer of video information.Some example embodiments that discuss specific entities and transfersare described in more detail, below.

A video source can be selected by user 402 via a user input control ordevices 414. Or the video source can be provided automatically. Onceselected or provided, synchronize process 444 identifies the videosource or content. Several methods of identification are possible andare discussed below.

A first identification method uses an identification (ID) value. A videosource (e.g., video file, stream, channel, torrent, etc.) can include anID value as part of its file contents. In FIG. 12, video source 422 isshown having ID value 424. The ID value 424 is then used by synchronizefunction 444 to generate request 446 to a system such as tag server 430.Tag identification function 432 within tag server 430 identifies tagdataset 434 as being associated with video source 422. This can be byusing ID value matching via a table, index, pointer, another ID value intag dataset 434, or by using any other suitable association mechanism toidentify tag dataset 434 as being associated with ID 424 and, hence,video source 422.

The format and type of ID value 424 and manner of association with thevideo source 422 can vary in other embodiments. A simple numeric oralphanumeric value can be used or the value can include a symbol,uniform resource locator (URL) or other address value, index, variable,array, object, structure, etc. The ID can be attached to or embeddedwithin a video file, stream, channel or other video source, such as byincluding it in a header, layer, metadata, etc. In other embodiments, anID can be associated with a video source such as via an external table,database or other construct that associates an ID with a video source.Other approaches are possible.

A second identification does not require that a predetermined ID valuebe used but, instead of or in cooperation with an ID, if present,derives identification information from existing video sourceinformation. For example, a name for a video file or stream can be usedas an identifier. The name can be a plain text name that is used as alisting in a directory structure used by humans or automated processes,or it can be an encoded or digital binary or other symbolic identifiersuch as an index or ID generated by other processes for other purposessuch as where a web site hosts many different video clips and uses anidentification scheme to track each hosted video clip.

Another way to derive identification information is to use file contentor video content values as identifiers. In one embodiment, one or morevalues used by or associated with a video source for any other purposesuch as a sequence number, author or originator information, checksum,video pixel values, etc. can be used to help identify the video. Two ormore values can be combined to derive a hash or identification value. Ina particular embodiment a size of a video file is used to determinemultiple video content values to combine to derive an ID. Apredetermined number of video content values are obtained starting fromthe start of the video source contents (i.e., beginning of compressedpixel value data). For example, the 0^(th), 1024^(th), 2048^(th), and soon up to a sample number of word values of video content are used whereeach sample value is separated by an adjacent sample value by aseparation interval of 1024. Each sample value can be added to therunning total to derive the hash value. Other ways to obtain a hashvalue using one or more sample values (e.g., hash table, hash function,etc.) are possible. Another embodiment uses a separation interval thatis based on the total video file size, or total video contentinformation size in order to generate a hash that traverses essentiallyall of the video file or content.

Depending upon the embodiment it may be useful to generate an ID basedon less than all of the video file or content as, for example, where atag dataset may be desired to be used for a video that varies slightlyfrom an original video to which the tag dataset belongs. Differentmanual or automated processing may change a video's content informationor file information slightly. For example, header information may bechanged by processes when the video is stored at a specific location,transferred in a peer-to-peer network, etc. A human may make edits to avideo such as to remove frames from the video, add an effect or credit,change the audio, etc. The edited video may still be suitable for usewith the original tag dataset depending upon the degree of change. Inorder to accommodate slight variances, a video source identification canbe statistical rather than determinative. For example, by requiring thatonly a threshold number (e.g., 80%) of the sample values match withexpected values in order to make the video file association a tagdataset that might not otherwise match could still provide suitableuseful in a presentation.

A third identification method allows a user or process to select a tagdataset to be used with a particular video source. For example, a usercan be asked to enter a name of a tag dataset to use, or to select a tagdataset from a list. In this manner a user can force use of a particulartag dataset in connection with playback of an arbitrary video. This maybe useful where a video is similar to another video but different enoughthat an automated correlation is difficult. Or it may be useful to havea tag dataset's information displayed without requiring a specificcorrelation between the tag dataset and the video. For example, aprocess may use a default tag dataset, or a user may wish to view anarbitrary tag dataset with a specific video. A default tag dataset caninform the viewer that a correlating tag dataset was not discovered forthe video. Additional information such as how to locate a correspondingdataset, or how to locate a better version of the video, can beprovided, along with ads, user instructions or other information.

Once a tag dataset has been provided to synchronize function 444 thetags defined by the dataset are displayed in synchronism with videoplayback. Control function 442 can include standard video transportfunctions such as Play, Pause, Stop, Rewind, Move to Frame, etc., asdesired. Synchronize function 444 acts to maintain predetermined tagdisplay, animation and behavior with video playback.

Although specific devices and architectures for performing functionsaccording to embodiments of the invention are described, in general, thefunctions may be performed by any device or process at any location ortime, as desired, unless otherwise noted. For example, the functions ofplayback engine 440 may be performed by an end-user device such as acomputer or cell phone. However, in other embodiments, either or both ofthe synchronize and/or control functions can be performed by a remotedevice (e.g., a server, peer or host computer) over a network. Tagidentification can be performed in whole or in part on a user's deviceor on a different local or remote device. Unless otherwise stated, anysuitable hardware and/or software can be used to implement the functionsdescribed herein. Functions can be performed in parallel or serial,processed in real time or non-real time by hardware, software or acombination of both, as desired.

Multi-User Networked Embodiment with Centralized Control

Multiple users can make modifications to a tag dataset that isassociated with a particular video. The modified tag dataset can thenremain associated with the particular video so that when the particularvideo is selected the modified tag dataset is used to provide taginformation for synchronized display. For example, a first user can viewa particular video that is associated with an original tag dataset thatincludes tags that are displayed during playback of the particularvideo. A tag authoring system can be used so that the first user canadd, delete or otherwise modify tag information in the original tagdataset. The original tag dataset is then modified accordingly toinclude the first user's modifications to produce a modified tagdataset.

A second user can then choose to view the particular video. The seconduser is provided (via a system as described, e.g., in FIG. 12) with themodified tag dataset. The second user can perform additional tagmodifications to the modified tag dataset to produce an additionallymodified tag dataset that can be stored and provided to subsequentviewers of the particular video.

Modifications to the tag dataset can be performed in real time so thatshortly after a user posts a new tag onto a video that new tag appearswhen another user views the video at about the same time in the videowhere the tag was posted. Alternatively, updates to a tag dataset can beperformed at a scheduled time, or after the tag modifications haveundergone review or approval by a controlling entity such as an entitymanaging tag dataset collection 430. In a preferred embodiment, a userwho is authoring changes to a tag dataset can view the changes and thendecide to publish the changes so that the changes become available toother users. A tag dataset controlling entity or system (i.e., “tagcontroller”) can determine whether to allow one or more of the changesor to perform substitutions or additional modifications, filtering,adjustment, tracking or other manipulations in response to the user'schanges. For example, a tag controller can provide sponsored ads orother third party information based on knowledge obtained fromuser-generated tag information. Details of controller actions aredescribed below.

FIG. 1 illustrates an example video-tag-handling system 10 in a specificapplication that uses a social networking site and a controlling entityfor authoring, animating, playing, publishing, and tracking video tags12. The video tag design and behavior are defined by one or more tagdatasets that are used in the playback of an associated video. Thevideo-tag-handling system 10 includes a tag-authoring computer 14 incommunication with a first server 16, a second server 22, and asocial-networking website 18. The social-networking website 18 furthercommunicates with various Web-user systems 20 and the first server 16.The first server 16 performs the functions of the tag controller. Thefirst server 16 may be employed by a controlling entity to implement oneor more controller methods to control or track tag information forcommercial, educational, entertainment or other purposes.

For clarity, various well-known components, such as power supplies,computer networking cards, Internet Service Providers (ISPs), firewalls,anti-hacking tools, and so on, have been omitted from the figures. Inaddition, various conventional controls, such as controls for closinginterface screens, minimizing windows, and so on, are omitted. However,those skilled in the art with access to the present teachings will knowwhich components and features to implement and how to implement them tomeet the needs of a given application. Furthermore, the figures are notnecessarily drawn to scale.

The tag-authoring computer 14 includes an authoring controller 24 incommunication with a user interface 26, an authoring module 28, ananimation module 30, a playback module 32, a publishing module 34, and alocal memory 36.

The authoring controller 24 communicates with a tag controller 38running on the tag server 16, i.e., the second server 16. The tag server16 further includes an administrator interface 40, a URL routing module42, a video-tag filtering module 44, a video-tag re-editing module 46,an additional-video-tag generating module 48, a video-tag usage database50, and an e-commerce engine 52, which all communicate with the tagcontroller 38. Search engine 54 is shown communicating with thevideo-tag usage database 50 and can be used to quickly obtain usage dataaccording to criteria such as conditions specified by a relationalsearch query.

In the present specific embodiment, the tag controller 38 furthercommunicates with a video-tag module 56 running on the social-networkingsite 18. The social-networking website 18 can be a site where videos areaccessed by multiple users, such as Myspace.com, YouTube.com, orFacebook.com. For the purposes of the present discussion, asocial-networking site or website may be any website adapted to enableusers to interact or communicate with each other. It should be apparentthat other types of websites, applications or other hosts can beprovided with video tagging functionality described herein.

For illustrative purposes, the social-networking website 18 is shownmaintaining video information 58, including video content 60 to bepublished. Publishing of the video content 60 by the social-networkingwebsite 18 enables access to the video content 60 by the Web-usersystems 20. The video information 58 further includes videoidentification information (video ID) 62 and the video-tag module 56.The video-tag module 56 may include computer code for selectivelyretrieving video-tag information from the tag server 16, as discussedmore fully below. An additional Web-video playback module 64 facilitatesuser access to the video-content 60 by the Web-user systems 20.

The Web-user systems 20 may include various computers owned by varioususers or viewers. The Web-user systems 20 act as clients to one or moreservers hosting the social-networking website 18. For illustrativepurposes, the Web-user systems 20 are shown including a user display 66that is adapted to play a video 68 with video tags 12, where the videocontent may be downloaded, streamed, or otherwise obtained from thesocial-networking website 18.

The second server 22, which may be implemented via one or more computersor servers, includes a video-tag database 72. The video-tag database 72is accessible to the authoring module 28 via the controller 24 of thetag-authoring computer 14. In the present embodiment, the tag-authoringcomputer 14 employs an Internet connection to communicate with thesocial-networking website 18, first server 16, and second server 22,which are included in or connected to the Internet 70. Similarly, theWeb-user systems 20 communicate with the social-networking website 18via the Internet 70.

Although the example architecture is described with respect toserver-client transactions, such terminology is generally adopted forease of discussion and not to limit the types of transactions that canbe performed. Other suitable architectures may be employed, as desired.For example, a less centralized (i.e., more distributed) system can usemultiple processing devices or sites to perform the functions includedwithin server one of FIG. 1.

In an example operative scenario, a user employs the user interface 26to employ video-tag authoring functionality provided by the authoringmodule 28. The functionality includes authoring controls for enablingthe user to edit text, links, color, transparency, shape, and otherproperties associated with a video tag. For the purposes of the presentdiscussion, authoring controls may be any user-interface features and/orinstructions associated therewith for enabling a user to trigger,activate, or otherwise use predetermined instructions.

Tag Authoring User Interfaces

The user may import various default video tags from the video-tagdatabase 72 via the authoring controller 24 in response to predetermineduser input, such as activation of an import control such as a drop-downmenu that allows selection of a tag design or style. An imported tag maybe edited via functionality provided by the authoring module 28 and madeaccessible to the user via the user interface 26 and controller 24.

Alternatively, the user may employ the user interface 26 and routinesrunning on the authoring module 28 and/or authoring controller 24 tocreate an entirely new video tag. The new video tag may then be saved tothe publicly accessible video-tag database 72 running on the secondserver 22. Alternatively, the user may store the newly generated tag ora modified default tag in the local memory 36.

The user may optionally control animation behavior of the video tag byinvoking functionality provided by the animation module 30 via the userinterface 26 and authoring controller 24. Controlling video-taganimation behavior includes, but is not limited to controlling thetranslational movement of a video tag with respect to the associatedvideo being played back. For the purposes of the present discussion, theterm “animation behavior” may be any characteristic associated withmovement of a video tag. For example, the time interval(s) in which thevideo tag appears in a video and coordinates indicating differentvideo-tag positions in the video at different times representcharacteristics describing animation behavior.

The user may employ the user interface 26 to invoke playbackfunctionality provided by the playback module 32 to see how an authoredtag moves relative to a displayed video. The playback module 32 may alsoinclude one or more routines for enabling a user to view other videosthat have accompanying video tags therein.

The user may employ the user interface 26 to invoke functionalityimplemented via the publishing module 34. In the present specificembodiment, the publishing module 34 includes one or more routinesenabling the user to publish a video with video-tags associatedtherewith, or alternatively, to publish video-tags in, on, or associatedwith a pre-existing video that may have been created or stored by thetag author or by another person or process. For example, a tag authormay create tag information for a video that exists on a remote site,such as the social-networking website 18.

In the present illustrative operative scenario, a user employs the userinterface 26 to author and animate one or more video tags to bepublished with a video that is associated with the video content 60 onthe social-networking website 18. When the user decides to publish thevideo tags, the user employs the user interface 26 to activatefunctionality provided by the publishing module 34. When the userselects a publishing option, a publish request, along with proposedvideo-tag data to be published is automatically forwarded to the tagserver 16. The video-tag data includes video-identification information(video ID), which identifies the video to be published. The video-tagdata also includes other video-tag information associated with the oneor more video tags to be published. The other video-tag information mayinclude author information, video-tag content, such as text to beincluded in the video tag, one or more hyperlinks, video-tag displayproperties, temporal and spatial locations of video tags relative todisplayed video content 60, and so on.

For the purposes of the present discussion, video tag content mayinclude any properties and/or characteristics associated with a videotag, including text content, hyperlinks, shape, color, positioning,animation characteristics, and so on.

A temporal location of a video tag may be any point in time relative toa video playback at which an instance of the video tag occurs. Anexample point in time may be identified by a video frame number or othertemporal parameter. A spatial location of a video tag may be identifiedin terms of pixel coordinates associated with a display, such as a videodisplay. A preferred embodiment of the invention uses a referencelocation either in the video playback area, or in a web page or displayarea that hosts the video playback area. In other embodiments, anysuitable reference location can be used. Tags can be allowed to moveoutside of the video display area in order to provide information andselections in an independent area so that tags can be manipulated apartfrom the video content, if desired. Such an approach is described in theco-pending applications referenced, above.

In addition, a publishing URL is also forwarded to the tag server 16.For the purposes of the present discussion, a publishing URL may be anyinformation, such as address information, indicating where a video tagand accompanying video is to be published. In the present operativescenario, the publishing URL corresponds to the location of the video tobe tagged with video tags on the social networking website 18.

The tag controller 38 can invoke functions such as those represented byvideo-tag filtering module 44, video-tag re-editing module 46, andadditional-video-tag generating module 48, to make adjustments tovideo-tag information to be published based on one or more predeterminedcriteria. An administrator of the tag server 16 may specify the one ormore predetermined criteria via the admin interface 40. Example criteriainclude the existence of swear words in video tag information to bepublished to certain websites. For example, the video-tag re-editingmodule 46 may activate one or more routines for deleting swear wordsfrom video tag text to be published to a website that does not allowswear words in commentary.

As another example, the video-tag filtering module 46 may delete certaintypes or categories of video tags that are not authorized by a videocopyright holder to appear in a particular video.

The additional-video-tag generating module 48 may implement one or moreroutines for adding additional video tags to the video associated withthe video ID. For example, text in the video-tag information provided bythe tag-authoring computer 14 may reference a particular item, such as acar, appearing in the identified video at a particular temporal locationin the video. The additional-video-tag generating module 48 may thenautomatically insert a video tag advertising a car near the temporallocation at which the original video tag occurs in the identified video.Criteria for implementing such advertisement placement may beincorporated in the tag controller 38 or other module, and may be editedby a user of the tag server 16 via the administrator interface 40.

In the present specific embodiment, after the video-tag informationprovided by the tag-authoring computer 14 is selectively filtered,adjusted, and/or augmented via the tag server 16, the tag server 16sends an enable signal to the tag-authoring computer 14, along withfiltered, adjusted, and/or augmented video-tag data. The authoringcontroller 24, in communication with the publishing module 34, thenpublishes the resulting adjusted video-tag data to the social networkingwebsite 18. This enables display of video tags associated with theadjusted video-tag data along with the identified video. The authoringcomputer 14 may transfer the adjusted video-tag data along with thevideo ID 62 to the social networking website 18 to facilitate publishingafter publishing is enabled by an enable signal from the tag server 16.

In the present specific embodiment, the tag-authoring computer 14 alsotransfers video-tag data comprising the video-tag module 56. Thevideo-tag module 56 includes one or more routines that instruct thesocial-networking website 18 as to how to render the video-tags in, on,or adjacent to the video content 60. The video-tag module 56 furtherincludes instructions for redirecting links occurring in video tags tothe tag server 16. The tag controller 38 may employ the URL routingmodule 42 to then cause the site identified by the URL occurring in aparticular video tag to be displayed by the user display 66. Thisenables the tag server 16 to track user selected video-tag links and tocompile additional usage statistics, which are stored in the video-tagusage database 50. In addition, the video-tag module 56 may forward asignal to the tag controller 38 each time the video content 60 andaccompanying tags provided via the video-tag module 56 are played. Thisenables the tag server 16 to count numbers of video-tag plays, which maybe stored in the video-tag usage database 50 for future use.

In addition, the video-tag module 56 includes one or more instructionsfor directing user requests to purchase (“buy”) items occurring in avideo, as identified by one or more video tags, to the e-commerce engine52 running on the tag server 16. The e-commerce engine 52 may run one ormore routines for enabling viewers of the social-networking website 18,such as users of the Web-user systems 20, to purchase products via thetag server 16.

Users of the Web-user systems 20 may activate the Web-video playbackmodule 64 running on the social-networking website 18 to display thevideo content 60. The Web-video playback module 64 may communicate withthe video-tag module 56 to facilitate redirecting user purchase requestsand user-selected hyperlinks to the tag server 16. For illustrativepurposes, the video-tag content 60 appears as the video 68 with videotags 12. The video-tag content 60 is displayed on the user display 66 ofthe Web-user systems 20.

In addition, certain video-tag information, such as text and URLs, isstored in the video-tag usage database 50 for statistics computationsand for use by the search engine 54. The video-tag usage database 50 mayalso be employed by the tag controller 38 and one or more of theaccompanying tag modules 42-48, 52 to facilitate implementing one ormore routines. For example, the tag controller 38 may reference thevideo-tag usage database 50 to determine whether a particular itemappears in a particular video and whether a particular advertisement issuitable for the particular video at a certain location in the video. Ifa particular type of advertisement is deemed appropriate according topredetermined criteria, the tag controller 38 may activate theadditional-video-tag-generating module 48 to create a video-tagadvertisement for insertion in to the video.

Hence, the video-tag-handling system 10 represents a feature-rich systemthat may enable various potentially novel activities, including, but notlimited to: 1. Routing tag (video-tag) links back to the remote tagserver 16; 2. Filtering tag contents according to publishing location,such as YouTube.com; 3. Adjusting video-tag display priority accordingto an advertisement fee paid by a user or advertiser; 4. Adjusting tagcontents or characteristics according to position in video, according toadvertisement payment, or according to other content occurring in videowith tag; 5. Placing advertisements, such as video-tag advertisements orother types of advertisements, based on data compiled from one or moreuser video tags; and 6. Enabling purchases of products or services via avideo-tag advertisement or link associated therewith, wherein thepurchase can be routed through the remote tag server 16.

Note that various modules 28-34 of the tag-authoring computer 14 andvarious modules 42-52 of the tag server 16 may activate or be associatedwith corresponding user interface screens and/or interface controls,which are displayed to users via the user interfaces 26, 40,respectively.

FIG. 2 illustrates a second example video-tag-handling system 10′. Theconstruction and operation of the second example video-tag-handlingsystem 10′ is similar to the construction and operation of the firstexample video-tag-handling system 10 of FIG. 1 with the exception thatpublishing of video tags is handled differently. The authoringcontroller 24 of FIG. 1 is replaced with an updated authoring controller24′ in FIG. 2. The tag controller 38 is replaced with an updated tagcontroller 38′ in FIG. 2 to handle an updated publishing scheme.

In particular, when the user of the tag-authoring computer 14′ choosesto publish a video tag, the corresponding video-tag data is forwarded tothe tag server 16′ and the social-networking website 18′. However,unlike the system 10 of FIG. 1, the tag server 16′ does not return apublishing-authorization signal directly back to the tag-authoringcomputer 14′ to authorize publishing of video tags on thesocial-networking website 18′. Instead, video-tag information that isforwarded from the tag-authoring computer 14′ to the social-networkingwebsite 18′ includes additional routines comprising the video-tag module56′ on the social-networking website 18′.

The additional routines 56′ are activated via the Web-video playbackmodule 64 when a user of the Web-user systems 20 attempts to play avideo that has been tagged via the tag-authoring computer 14′. Theadditional routines 56′ send an enable query to the updated tagcontroller 38′, which identifies video-tag data that was previously sentto the tag server 16′ via the tag-authoring computer 14′. The tagcontroller 38′ then automatically invokes functionality provided by thevarious modules 42-52 of the tag server 16′ based on predetermined rulesor criteria, to adjust the video-tag data if not already initiallyadjusted upon receipt by the tag server 16′. Adjusted video-tag data isthen forwarded back to the social-networking website 18′ along with anenable signal enabling the Web-video playback module 64 to play backvideo content 60 with the adjusted video-tag data in response toactivation by one or more of the Web-user systems 20.

The video-tag-handling system 10′ may facilitate tracking additionalusage information statistics, such as the number of times a particularvideo tag is played. Furthermore, note that the tag server 16′ mayimplement one or more routines for limiting the number of plays of aparticular video-tag. For example, the tag controller 38′ may beemployed to limit an advertiser's video-tag to a predetermined number ofplays. Such playback limitations may also be implemented via thevideo-tag-handling system 10 of FIG. 1. However, in the embodiment 10 ofFIG. 1, such playback limitations may be encoded in the video-tag dataitself. The embodiment 10′ of FIG. 2 does not necessarily use playbacklimitations encoded in video-tag data, but instead, may retain suchlimitations at the tag server 16′, which may disable publishing of avideo tag when a predetermined number of playbacks of the video tag iscounted.

FIG. 3 illustrates a third example video-tag-handling system 10″. Theconstruction and operation of the third video-tag-handling system 10″ issimilar to the construction and operation of the first examplevideo-tag-handling system 10 of FIG. 1 with the exception thatpublishing of video tags is handled differently. The authoringcontroller 24 of FIG. 1 is replaced with an alternative authoringcontroller 24″ in FIG. 3, and the tag controller 38 is replaced with analternative tag controller 38″ in FIG. 3 to handle an alternativepublishing scheme.

In particular, when a user of the tag-authoring computer 14″ chooses topublish a video tag, the corresponding video-tag data, publishing URL,and any video to be published and/or a location thereof (such as a linkor other address) is provided to the alternative tag controller 38″. Thealternative tag controller 38″ then selectively adjusts or modifies thevideo-data as needed and publishes the associated video tags to thewebsite indicated via the publishing URL, which is the social-networkingwebsite 18″ in the present operative scenario. The tag server 16″ mayalso publish video accompanying the video tags if the video content 60is not already present on the social-networking website 18″. If thevideo content 60 is already present on the social-networking website18″, the video identification information 62, which may be provided tothe social-networking website 18″, is used by the tag server 16″ and/orsocial-networking website 18″ to associate video-tag data from the tagserver 16″ with the appropriate video content 60.

FIG. 4 illustrates a first example video-playback interface 80 suitablefor use with the video-tag-handling systems 10, 10′, 10″ of FIGS. 1-3.With reference to FIGS. 1 and 4, the video-playback interface 80 may beaccessible to a user of the tag-authoring computer 14 via the userinterface 26. The video-playback interface 80 may be implemented viainstructions, such as computer code, included in the playback module 32of the tag-authoring computer 14. A similar video-playback interface maybe displayed on the user display 66 of the user systems and may beimplemented via the Web-video playback module 64 running on thesocial-networking website 18 or running on the Web-user systems 20, suchas via a plug-in module.

The present illustrative playback interface 80 includes a video-displayarea 82 for displaying a scene 84, which may include a video tag 86,also called a tag. The scene 84 may represent a video playing back inreal time, a paused video frame, or other image data.

Playback behavior of the video scene 84 is controlled via user controls87, which may include standard play, stop, pause, fast forward, rewind,and volume controls. In the present illustrative embodiment, thevideo-display area 82 includes additional space 88 below the scene 84,where tags, such as a previous tag 90, may move after being displayed inthe video-display area 82. The playback interface 80 further includesvarious user controls 92, including a tag on/off control 94, a snapshotcontrol 96, an edit-video-tag control 98, and a publish control 100.

A tag-category control 114 may enable a user to select different tagcategories for display. For example, a user may click the tag-categorycontrol 114, such as via a computer mouse, which may then cause onlytags of a certain category to be displayed. Tag categories can includeany desired grouping of tags. For example, tags referring toadvertisements might be categorized as advertisement tags. Thetag-category control 114 might indicate the tag category currently beingdisplayed. Multiple clicks on the tag-category control 114 may enable auser to page through multiple categories of tags to be displayed.Various controls, such as the tag-category control 114 may be omittedwithout departing from the scope of the present invention. Furthermore,the tag-category control 114 may operate differently than described. Forexample, the tag-category control 114 may activate a separate menu forselecting tag display categories or even categorizing or re-categorizingexisting tags according to user preference.

In an example operative scenario, the video-display area 82 is showndisplaying an example tag 86, which includes a tag header field 102, atag text field 104, and a tag link field 106. The header field 102 mayinclude the name of the tag's author, category of the tag, and/or otherinformation. The text filed 104 may include tag text, which may besupplied by the user of the playback interface 80 or via another user.Similarly, the link field 106 may include one or more hyperlinksassociated with the tag 86. For example, a hyperlink to a website thatenables the viewer to purchase an item 108 may be included in thetag-link field 106. The tag 86 further includes a pointer 110, which maybe used to point to a particular item or location, such as the item 108,occurring in the video scene 84.

The tag 86 and accompanying fields 102-106, size, pointer 110, spatiallocation, and so on are merely illustrative. Different sizes, fields,content, and so on may be employed without departing from the scope ofthe present teachings. For example, the pointer 110 may be omitted.

In one operative scenario, a user is playing a video scene 84 anddecides to take a snapshot of the scene 84 by selecting the snapshotcontrol 96. The resulting snapshot includes the tag 86 and scene 84 in astill-frame or in a predetermined number of frames. The snapshot may bestored locally, such as in the local memory 36 of the tag-authoringcomputer 14. Alternatively, the snapshot may be emailed or may behandled otherwise. A user may then access the snapshot as needed to readthe text field 104, select the link 106, and so on.

In another operative scenario, the user is playing back the video scene84 and then pauses the video at the scene 84. The user then selects thetag 86, such as via a computer mouse or hot-key, and then clicks theedit-video-tag control 98. The playback interface 80 then changes to atag-authoring interface, as discussed more fully below, enabling theuser to edit the tag 86.

Whether or not the tag 86 is editable by the user may depend onpredetermined tag settings. For example, the tag 86 may be configured sothat only the author of the tag 86 can edit it. Alternatively, the tag86 may be configured so that any viewer can edit or add comments to thetag 86. The tag on/off control 94 acts as a toggle button to enable auser to turn the display of tags, such as the tag 86, on or off.

In another operative scenario, the user is playing back the video scene84 and decides to publish the associated video to a website. The userthen selects the publish control 100, which may cause the playbackinterface to change to a publishing interface that provides controlsenabling a user to export the video to a website or other media and/orto publish the tag 86 to a website already hosting the video.

In another operative scenario, the user allows the video playing in thevideo-display area 82 to play through. The tag 86 has been configured tofollow an animation path 112 to the space 88 below the scene 84 after apredetermined number of video frames. The tag 86 may then rest in thespace 88, which may include other tags, and may expire and disappearafter a predetermined time period. Alternatively, previously displayedtags 90 are stacked in the space 88 or spread in an overlapping fashion,with the most recent tags being near the top of the stack. Other stackorderings are also possible.

The user playback interface 80 may include additional controls withoutdeparting from the scope of the present teachings. For example, acontrol enabling a user to display only certain tags associated withcertain rankings, priorities, authors, and so on, may be included in theplayback interface 80. Various additional conventional controls forbrowsing for video files, importing video files, closing the interface80, and so on, are not shown. However, those skilled in the art withaccess to the present teachings may readily implement such controls tomeet the needs of a given application without undue experimentation.

Furthermore, while certain controls 92 in the playback interface 80 areshown as buttons, other types of controls may be employed. For example,similar functionality may be implemented via computer keyboard hot keys(e.g., shift-S to take a snapshot), pull-down menus, or menus activatedby right-clicking the tag 86 or scene 84. Alternatively, a user mayclick and drag the tag 86 to a control, such as the edit-video-tagcontrol 98 to activate it, or the user may click and drag the tag 86 toa different interface, such as to a tag authoring or animatinginterface, as discussed more fully below.

FIG. 5 illustrates a first example video-tag authoring interface 120that may be activated via the video-playback interface 80 of FIG. 4 whena user selects the edit-video-tag control 98 of FIG. 4. The authoringinterface 120 may be implemented via one or more routines running on theauthoring module 28 of the tag-authoring computer 14 of FIG. 1.

The authoring interface 120 includes the video-display area 82, which isshown illustrating a similar video scene 84 as shown in the playbackinterface 80 of FIG. 4, including the tag 86 and item 108 to which itpoints. The authoring interface 120 further includes a text-editingsection 122 in which a user may enter tag text. If the tag 86 is animported tag, such as a tag template imported from the video-tagdatabase 72 of FIG. 1, default text included in the tag template willappear in the test-editing section 122. A user may then edit the defaulttext.

The authoring interface 120 includes additional authoring sections,including a tag-characteristics section 124, a text-characteristicssection 126, and a link section 128. The tag-characteristics section 124includes various fields 132, wherein a user can adjust the height,width, fill color, transparency, edge color, edge width, and edgecurvature of the tag 86 by entering desired values in spaces provided.

The text-characteristics section 126 includes text-characteristic fields134, wherein a user can adjust the size and color of text appearing inthe text field 104. Example tag text with the adjusted colors may appearin the text-characteristics section 126. The link section 128 providesspace for a user to enter a hyperlink to appear in the link field 106 ofthe tag 16.

Additional or fewer fields may be included in various sections, such asthe tag-text characteristics section 126 or the tag-characteristicssection 124. For example, a field for selecting the type of font used inthe tag 86 may be added to the text-characteristics section 126. Anadditional field may be provided for adding a tag header or other fieldto the tag 86 or for changing the existing header 102 or propertiesthereof.

Additional interfaces, menus, and/or controls for adjusting additionaltag properties or characteristics may be activated by selecting anadditional-settings button 130. Examples of additional controls that maybe employed include a control for adjusting a tag category associatedwith the tag 86, a control for selecting different tag shapes, a controlfor determining whether the scene 84 is allowed to animate in theauthoring interface 120, a control for displaying multiple tags forediting simultaneously, a control for controlling pointer positioning onthe tag 86, a control for setting the life span of the tag 86 in termsof the number of plays the tag may experience before expiring ordetermining how long the tag will remain in a given static locationbefore disappearing or changing transparency, and so on.

For illustrative purposes, various additional controls 136 are shown.The additional controls 136 include a save-new button 138, a save-overbutton 140, a clear-video button 142, a reset-tag button 144, adelete-tag button 146, an import-tag button 148, an animation-settingbutton 150, and a return-to-playback button 152.

With reference to FIGS. 1 and 5, user selection of the save-new button138 activates one or more routines, which may be included in theauthoring module 28 of FIG. 1, for enabling a user to save an editedtag. The saved tag may be saved with a new name to a local memory, suchas the local memory 36 of FIG. 1, or to the video-tag database 72. Userselection of the save-over button 140 may activate one or more routinesto cause the edited tag 86 to replace any previously saved or storedversion of the tag 86. User selection of the clear-video button 142 mayactivate one or more routines for clearing instances of the tag 86 orall tags (depending on the additional settings 130) from the videorepresented by the scene 84. User selection of the reset-tag button maycause the tag 86 to either clear its fields 102-106, return to a defaulttag, or reset to the previously saved version of the tag 86. Userselection of the delete-tag button 146 may cause deletion of the tag 86or removal of the tag 86 from the scene 84 and associated video. Userselection of the import-tag button 148 may cause display of a new tag inaddition to the tag 86 or instead of the tag 86. The new tag can then beedited and saved via the authoring interface 120.

User selection of the return-to-playback button 152 may activate one ormore routines to cause the authoring interface 120 to transition to orotherwise be replaced by or appear in addition to the playback interface80 of FIG. 4. Similarly, user selection of the animation-settings button150 may cause an animation interface to appear, as discussed more fullybelow.

The authoring interface 120 may enable a user to control certainanimation behavior. For example, the tag 86 may change in time over apredetermined number of frames. In one operative scenario, a useremploys the playback controls 87 to move to different locations in avideo in which the tag 86 will be displayed. At different temporallocations in the video scene 84, a user may then adjust tag displaysettings, such as transparency and color, at the different locations.

In another operative scenario, the scene 84 is paused. A user may thenclick on the tag 86 to associate changes entered in the various fields,e.g., fields 124-128 with the selected tag 86. Alternatively, a user mayselect individual fields 124-128 in the tag 86 directly, such as via acomputer mouse. The user may then enter field information, such as textor links, directly into the tag fields 102-106. For the purposes of thepresent discussion, field information may include any type ofinformation added to a video tag, such as the name the author of thevideo tag, meta data associated with the video tag, and so on.

To author a new tag or a different tag other than the tag 86, a user mayimport a preexisting tag, such as from the video-tag database 72 of FIG.1, or the user may create a new tag. To create a new tag, a user mayclear an imported tag by clicking the reset-tag button 144 and then savethe tag as a new tag by selecting the save-new button 138. To import atag, a user may select the import-tag button 148.

Various sections 124-128 and controls 130, 136 may automatically appearin the authoring interface 120 when the authoring interface 120 isactivated. Alternatively, such sections and controls may be implementedvia tabbed menus, drop-down lists, pop-up menus, menus that areactivated via hot keys or right-clicking the tag 86, and so on, withoutdeparting from the scope of the present teachings.

Those skilled in the art will appreciate that the positioning of variousfeatures of the authoring interface 120, such as the additional controls136 is merely illustrative. The authoring interface may be arrangeddifferently without departing from the scope of the present teachings.For example, the text-editing section 122 may be positioned below thevideo-display area 82. Furthermore, more or fewer controls or sectionsmay be included. For example, the video playback controls 87 may beomitted from the authoring interface 120 or may be located outside ofthe video-display area 82.

FIG. 6 illustrates a first example video-tag animation interface 160that may be activated via the video-tag authoring interface 120 of FIG.5 by selecting the animation-settings button 150. The animation module30 of FIG. 1 may include routines or computer instructions forimplementing the animation interface 160 via the user interface 26 ofFIG. 1.

The animation interface 160 includes the video-display area 82, which isshown illustrating the scene 84. The playback of the scene 84 may becontrolled in part via the playback controls 87 in the video-displayarea 82. For illustrative purposes, extra space 88 is shown below thevideo-display area 82. The extra space 88 may result from an unusedportion of a display resulting from differences in aspect ratios ofdisplayed video. Alternatively, the extra space 88 may be automaticallycreated irrespective of the aspect ratio of the video being displayed.

The animation interface 160 includes various animation controls 174,including a record-animation button 162, a save-animation button 164, aplay-animation button 166, a reset-animation button 168, and a helpbutton 172, for enabling a user to record a tag animation, save a taganimation, play a tag animation, reset a tag animation, or activate ahelp menu, respectively.

In the present embodiment, directions 176 for using the animationinterface 160 are provided below the controls 174. The directions 176may include hyperlinks to other subjects or more detailed subjectmatter.

In operation, to record a tag animation, a user selects therecord-animation button 162. By default, the scene 84 begins to playwhile movement of the tag 86 is recorded. A user may click and drag thetag 86, such as via a computer mouse, to control movement of the tag 86in the animated scene 84.

In an illustrative scenario, with reference to FIGS. 4 and 6, the userselects the tag 86, such as by clicking on it with a computer mouse, andthen drags the tag 86 to the side and down into the tag-resting space88, as indicated by the example animation path 112 of FIG. 4. To stoprecording the movement of the tag 86, the record-animation button 162 ispressed again. A user may drag the tag 86 to an initial startinglocation before the record-animation button 162 is pressed to startrecording. This enables the user to set an initial spatial location andtemporal location for the tag 86 in the video represented by the scene84. Pressing the record-animation button 162 again establishes the endspatial location and temporal location of the tag 86. The spatiallocation of the tag 86 in the video-display area may be described by oneor more screen coordinates identifying one or more pixels occupied bythe tag 86. For example, the tag location may be specified by the screencoordinates of a center of the tag 86.

For the purposes of the present discussion, the combination of aninitial spatial location and a temporal location is called an in point.The combination of an end spatial location and temporal location for atag in a tag animation is called an out point.

To play test the animation, the play animation button 166 is pressed.The animation interface 160 will then show the tag 86 moving to thetag-resting space 88 as the video scene 84 is played back. To start overand re-record the tag animation, the reset-animation button 168 isselected. To save the animation, the save-animation button 164 ispressed.

From the animation interface, a user may transition to the authoringinterface 120 of FIG. 5 by selecting an edit button 176. Selection of areturn-to-playback button 178 activates the playback interface 80 ofFIG. 4, where a user may view the entire video and accompanying taganimation.

Using the animation interface 160, a user may record so-called multiplein points and out points. To record multiple animations for a tag in avideo, a user may selectively toggle the record-animation button 162.For example, a user may record a first animation by pressing therecord-animation button 162. The recording is ended by pressing therecord-animation button 162 again. After the record-animation button 162is pressed to stop recording, the scene 84 may continue to play. Theuser may then reposition the tag 86 as desired as the scene 84 plays toset another in point. When the tag 86 is positioned at a desired inpoint (which may be set while the scene 84 is playing in slow motion ornot), the record-animation button 162 may be pressed again to recordanother animation. Note that a video scene may be paused,fast-forwarded, rewound, and so on, (e.g. via controls 87) as needed tofacilitate establishing desired animation in points, out points, andmovement.

Additional or fewer controls 174 may be provided in the animationinterface 160 without departing from the scope of the present invention.For example, the help button 172 may be omitted. In addition, thevarious controls 174 may appear in different forms, other than buttons.For example, the controls 174 may appear as menu items that areaccessible in a pop-up list, a pull down menu, tabs, a menu activated bydouble-clicking or right-clicking the tag 86, and so on.

Hence, the interfaces 80, 120, 160 of FIGS. 4-6 may be employed by thevideo-tag-handling systems 10, 10′, 10″ of FIGS. 1-3 to facilitateediting, authoring, and animating video tags in a video. The interfaces80, 120, 160 of FIGS. 4-6 represent different interface screens that areused during different operational modes, including a playback mode, anauthoring mode, and an animating mode, respectively.

While such modes are implemented via separate interfaces 80, 120, 160,in FIGS. 4-6, functionality of one or more of the interfaces 80, 120,160 may be combined or integrated into a single interface screen withoutdeparting from the scope of the present teachings. For example, acombined interface could use a system of tabs or drop-down menus toswitch between functional modes.

As another example, additional playback and animation controls may beadded to the authoring interface 120 of FIG. 5, or additional playbackand authoring controls may be added to the animation interface 160 ofFIG. 6.

FIG. 7 illustrates a second video-tag authoring interface 190, alsocalled the integrated interface, which is suitable for use with thevideo-tag-handling systems 10, 10′, 10″ of FIGS. 1-3, and enables usersto author, edit, and animate video tags. The integrated interface 190includes the display area 82, which is shown displaying the scene 84.Additional video transport controls 192 are shown overlaying the scene84 near the tag 86. A set of tabs 194 is positioned below thevideo-display area 82. A list of tag templates 196 is positionedadjacent to the video-display area 82.

The tag templates 196 include various predefined tags 198, which may beselected, such as via a computer mouse 200. Upon selection of one of thebubble templates 198, a corresponding edit button 202 (or other control)appears. Selecting the edit button 202 causes the contents of the tagtemplate 196 to appear in the tag 86 and in the tabs 194 below thevideo-display area 82. The user may then employ the tabs 194 to edit tagcontent, including animation behavior.

For illustrative purposes, the tabs 194 include an authoring tab 204, ananimation tab 206, a category tab 208, and a field tab 210. Theauthoring tab 204 includes fields for facilitating editing tab contents,including a header field 212, a text field 214, a link field 216,text-size field 220, and a text-color field 218.

The animation tab 206 may include various controls for facilitatingrecording a tag animation. The controls may include animation controlssimilar to the animation controls 174 of the animation interface 160 ofFIG. 6.

The category tab 208 may include various controls for enabling a user tospecify a tag category or to otherwise classify the tag 86. The fieldcategory 210 may include one or more controls for enabling a user tocreate new tag fields, such as a tag-author identification field. Newtag fields may be included in the tag 86 or adjacent to the tag.

The video transport controls 192 may enable a user to move to differentinstances of the tag 86 occurring in different portions of the videoassociated with the scene 84. For example, the video transport controls192 show that three different versions of the tag 86 exists, asindicated by the right most number of the transport controls 192. Thecurrently displayed version of the tag is “version 1” as indicated bythe center number in the video transport controls 192. A user may jumpto a second version of the tag 86 by selecting a right arrow 222occurring in the video transport controls 192. Similarly, a user maytransition to any previous version of the tag 86 by selecting a leftarrow 224. As the displayed version of the tag 86 changes, theaccompanying scene 84 changes accordingly. This enables a user to setdifferent tag parameters or characteristics, such as transparency andcolor, via one or more controls provided via the tabs 194, in responseto different scenes 84 in which the tag 86 occurs.

For the purposes of the present discussion, video transport controls maybe any features or underlying functionality associated with a displayinterface that enable a user to move to different frames in a video toadjust characteristics of a video tag at those different frames orranges of frames in the video.

Note that additional tabs may be included in the tabs 194 for providingother types of functionality. For example, a tag-shape-selector tab maybe included, which provides controls for enabling a user to selectdifferent shapes of tags. Additional controls may also be included. Forexample, controls enabling importing of additional tags to be includedin the tag templates 196 may be included in one of the tabs 194 orelsewhere in the integrated interface 190. Additional controls enablinga user to control positioning and/or other properties of the pointer110, such as whether the pointer 110 is even displayed, may be includedin the tabs 194 or in one or more additional tabs.

FIG. 8 illustrates a third video-tag authoring interface 230, which issuitable for use with the video-tag-handling systems 10, 10′, 10″ ofFIGS. 1-3, and that is adapted for use with blogging applications. Thethird video-tag authoring interface 230, also called the blog interface,includes the video-display area 82 with the playback controls 87. Thevideo-display area 82 shows an example scene 232 with an example tag 236pointing to a car 234. The tag pointer 110 is positioned on the tag 236to indicate a desired pointing direction. The pointer 110 may be omittedor replaced with another directional indicator without departing fromthe scope of the present teachings. For example, instead of using theprotruding pointer 110, a portion of the edge of the tag 236 may changecolor to indicate a desired pointing direction. The tag 236 furtherincludes a text field 238 with example text, an example link field 240with example URL information, and a header field 242 indicating theauthor of the tag 236.

The blog interface 230 further includes a blog-entry section 244, whichincludes various example blog entries 246-250, including a first blogentry 246, a second blog entry 248, and a third blog entry 250. The bloginterface 230 further includes tag controls 252, including an on/offcontrol 254 for enabling or disabling the display of tags, such as thetag 236 with the video scene 232. Tag filter controls 256 include afriends-only control 258, an approved control 260, and a show-allcontrol 262. The friends-only control 258 activates one or more routinesto enable display of only tags created by friends of the user of theblog interface 230. Similarly, the approved control 260 may activatefunctionality to enable display of only tags that were created byapproved authors or otherwise belong to approved categories or classesof tags. The show-all control 262 may enable a user to show allavailable or displayable tags on the video-display area 82.

The blog interface 230 further includes various drop down panels 264,which may be expanded or collapsed. For illustrative purposes, the dropdown panels 264 are shown expanded. However, in practice, the drop downpanels 264 may be selectively collapsed to save space. In certainimplementations, only one of the drop down panels 264 is allowed to beexpanded at any given time to conserve space. The drop down panels 264includes a tag-content panel 266, a tag-properties panel 278, and atag-actions panel 284.

The tag-content panel 266 includes various authoring fields including aheader field 268 for entering tag header information, a text field 270for entering tag text, a link field 274 for entering a desired taghyperlink, a size field 272 for adjusting tag text size, and a colorfield 276 for adjusting tag text color.

The tag-properties panel 278 includes various properties fields 280 foradjusting tag width, height, edge width, fill color, edge color, anddegree to which edges of the tag 236 are rounded. A color palette forselecting colors may be activated by selecting a color palette button282. Alternatively, a color palette may automatically appear when a userbegins to enter color information into the tag-properties panel 278.

The tag-actions panel 284 includes various controls 286 for controllingtag actions, such as adding, deleting, importing, replacing, clearing,saving, and resetting tags in the scene 232. Additional or fewercontrols in each drop down panel 266, 278, 284, and additional or fewerdrop down panels may be employed without departing from the scope of thepresent teachings. For example, additional controls may be added to thetag-actions panel 284 to enable users to control tag animation path,animation duration, category, and so on. As another example, anadditional tag-collision-settings panel may be included in the bloginterface 230. The tag-collisions-settings panel could include controlsfor determining which tags are displayed in the event of tag collisions.A tag collision is said to occur when two or more tags overlap or areotherwise configured to share a spatial and temporal location in thevideo scene 232. Certain categories of tags may be assigned highercollision priorities than other categories of tags. Tags with highercollision priorities may be displayed before tags with lower collisionpriorities.

The video-tag module 56 of FIG. 1 may be employed to implement collisiondetection. Alternatively, a client-side plug-in, such as a plug-incorresponding to the playback module 32 may be employed to implementcollision-detection methods, such as methods for prioritizing tags anddetermining collision behavior based on priorities associated with tagsinvolved in a collision; for adjusting tag display duration based onprioritization; for adjusting lifespan of tag in terms of numbers ofplays based on prioritization; and/or for otherwise employing tagcategories or other priority schemes to control tag population in avideo display.

Additional controls, which may be included in an additional panel, mayenable adjusting the orientation of the tag pointer 110. Such a controlcould provide a field to enable a user to indicate which corner or sideof the tag 236 from which to extend a pointer.

For illustrative purposes, the blog entries 246-250 are shown includinguser photos and blog text entries. For the purposes of the presentdiscussion, a blog entry may be any input published by a user to awebsite or other site that enables other users to publish their input.The second blog entry 248 is shown corresponding the tag 236. Acorresponding tag button 288 enables a reader of the second blog entry248 to cause the scene 232 to jump to the video location where the tag236 can be viewed. Similarly, the tag 236 may include functionalityenabling a user to quickly locate the blog entry 248 corresponding tothe tag 236. Such functionality may be implemented via a drop down menuactivated by right-clicking the tag 236 or via another method, such as abutton or link included in the tag 236.

In one operative scenario, the scene 232 is paused, and the tag 236 ispositioned in the scene 232, such as by dragging via a computer mouse.The user then enters or sets desired tag content, properties, and/orcharacteristics via the drop down panels 264. The duration during whichthe tag 236 is to be displayed in the scene 232 may be automatically setbased on predetermined criteria. For example, relatively large tags maybe automatically set to expire sooner than smaller tags with less text.An advertisement tag may persist depending upon the amount paid for theadvertisement.

In certain implementations, the tag 236 could persist for only a singlevideo frame. To read the contents of the tag, a user would select thetag button 288 occurring in the corresponding blog entry 248. The tagbutton 288 would then cause the scene 232 to jump to the frame where theuser of the interface can observe the tag 236. Alternatively, the tag236 may persist for a certain time to enable viewers to read the tag 236while the scene 232 is playing. Exact details pertaining to taganimation and persistence are application-specific and may be readilydetermined by those skilled in the art with access to the presentteachings to meet the needs of a given application.

In other implementations, the tag 236 may be specifically animated 236in the scene 232. For example, a user could create multiple in and outpoints and intermediate points for animating the tag 236 by using theplayback controls 86. For example, a user could move the tag 236 to afirst position; then advance the video via the playback controls 86;move the tag to the next desired location; then advance the scene 232again, and so on. A save or enter button included in the tag actionspanel 284 may be selected to terminate the tag recording, therebycreating an animation out point.

In some cases, users may wish to enter lengthy text in the tag 236. Theamount of text that a user may enter may be limited based onpredetermined criteria, such as tag size or priority. Alternatively,scrolling features may be added to the tag 236 to enable a user toscroll through the tag text 238 in cases where the text 238 is lengthy.

Computer routines for implementing the blog interface 230 may beimplemented via various modules 24-34 running on the tag-authoringcomputer 14 of FIG. 1 as Internet browser plug-ins. Alternatively, someor all of the routines may be implemented via software and/or hardwarerunning on the social-networking site 18 or other locations. The exactlocation of the routines may be immaterial for certain implementations.

With reference to FIGS. 1 and 8, in the present operative scenario, thetag 236 is shown including text 238 referencing a car 234 in the scene232 and asking where the car 234 can be purchased. Before this text 238is published, the text 238 is transferred to the tag server 16 ofFIG. 1. The tag server 16 then adjusts the text 238 if needed, andperforms any calculations or observations. In the present scenario,software running on the tag server 16 notes the spatial and temporallocation (or range of locations) in the video scene 232 at which the tag236 occurs and notes that the text 238 refers to a car. The tag server16 may run artificial intelligence (AI) software adapted to determinethat the text asks a question. The AI software may then provide ananswer to the question in a tag field, button, and/or hyperlink.

In the present operative scenario, the tag server 16 determines that thetag 236 refers to a car and stores corresponding statistics informationin the video-tag usage database 50. The tag server 16 then automaticallyinserts a link 290 into the tag 236 before the tag is published. Thelink 290 may direct users to an advertiser's website where users canpurchase cars. User selection of the link 290 may cause a signal to besent to the tag server 16 to indicate that a user has selected the link290. Alternatively, the user may be transferred to a site hosted by thetag server 16, where a user can then access another website where theycan purchase automobiles, such as the car 234. Alternatively, the link290 refers to an e-commerce website implemented via the e-commerceengine 52 of the tag server 16.

The statistics information pertaining to the tag 236 may include, forexample, where and when the tag 236 occurs in the scene 232 and what thetag text 238 discusses. The tag controller 38 running on the tag server16 of FIG. 1 may employ the statistics to place additional relevanttags, tag links, advertisements, and so on in the video scene 232 atdesired locations.

As users add tags and blog entries to the video scene 232, the tagserver 16 obtains additional information about the corresponding video.This additional information is usable for business purposes, such asadvertising.

FIG. 9 is a first example flow diagram of a method 300 suitable for usewith the video-tag-handling systems 10, 10′, 10″ of FIGS. 1-3 andinterfaces 80, 120, 160, 190, 230 of FIGS. 4-8. The method 300 includesa first step 302, which includes employing a server, such as the remotetag server 16 of FIG. 1 to receive publishing information, includingproposed video-tag properties and/or characteristics, publishing URL,and video identification information.

A second step 304 includes employing the server to selectively modify orfilter publishing information, such as the video-tag properties and/orcharacteristics, in response to receipt of the publishing informationbased on one or more predetermined criteria, such as publishing URL. Theserver then provides resulting modified video-tag information.

A third step 306 involves enabling publishing of the modified video-taginformation, such as by providing an enabling signal and accompanyingmodified video-tag information to one or more websites or applicationsas needed.

FIG. 10 is a second example flow diagram of a method 310 suitable foruse with the video-tag-handling systems 10, 10′, 10″ of FIGS. 1-3 andinterfaces 80, 120, 160, 190, 230 of FIGS. 1-8. The method 310 includesa first step 312, which includes displaying a first interface in a firstmode of operation. The first interface includes a video playback regionadapted to display a video; a control enabling a user to switch from thefirst mode of operation to a second mode of operation; and one or moreadditional controls enabling a user to adjust content of a video tag.

A subsequent step 314 involves selectively displaying a second interfacein a second mode of operation, wherein the second interface includes oneor more controls for enabling a user to establish animation behavior ofthe video tag.

FIG. 11 is a flow diagram of a third method 320 suitable for use withthe video-tag-handling systems 10, 10′, 10″ of FIGS. 1-3 and interfaces80, 120, 160, 190, 230 of FIGS. 4-8. The third method 320 includes alocation-determining step 322, which includes employing user-generatedvideo tags and a predetermined criterion or criteria to determine one ormore desired locations in a video for placement of an advertisement. Theadvertisement is then provided in or adjacent to a play area of thevideo at the one or more desired locations in an advertisement-placingstep 324.

Additional method suitable for use with the video-tag-handling systems10, 10′, 10″ of FIGS. 1-3 and interfaces 80, 120, 160, 190, 230 of FIGS.4-8 include using the author's predefined text to add information to thevideo while it is running at a desired time e.g., when a particularproduct is showing.

Another method involves determining video playback area boundaries andmodifying accompanying tag behavior to account for the boundaries. Forexample, each of multiple users may be limited to placing a tag only ina predetermined area of a video (or outside of a video). This couldprevent users from placing tags that interfere with other users' tags.Also, this could allow a reserved area for placement of non-obscuredsponsored tags regardless of the amount of user tags. Another limitationon users can be the size of a tag allowed to be created by a user.

In one embodiment, users that have a higher reputation than other users(e.g., users who have been a member of a website's community for a longtime, who have received a higher rating or more votes from other users,etc.) can have greater privileges with respect to posting tags. Thehigher-rated users can have their tags have a higher priority thanlower-rated users. The higher priority tags can overlay or block thelower priority tags. The lower priority tags may be removed if theycollide with higher priority tags. Higher-rated users may be allowed todelete tags from lower-rated users. In one social community websiteembodiment, the user community can cause automatic removal of a tag ifthe tag receives enough negative votes from the community. Similarly,tags with more positive votes can be granted precedence and may bemaintained while other lower-rated tags are removed in order to maintaina reasonable amount of tags on the display at any one time.

Higher-rated users may be allowed to post larger tags, or tags withreserved styles, themes, colors, animations or other desirable ordistinctive characteristics. A user may receive a higher rating bypaying more money to be a subscribing member of a site, by being awardeda higher rating by an administrator, or by other methods.

In one embodiment of a social networking site, a user is assigned anaccount to which the user can login by using a username and/or password.Once logged in the user has access to a profile page that includesinformation about the user and also includes controls for the user todefine a look or style to be used in the tags that the user posts tovideos. For example, the user can select specific color combinations(background, border, text, etc.), highlights, tag animations (e.g.,glowing, vibrating), transitions, text font type, etc. When the userposts a tag to a video the predefined tag characteristics from theuser's profile page can be used to determine part of the tag's design.

Another method involves automatically filtering swear words or linksthat are determined undesirable for a particular application orotherwise controlling tag size based on predetermined criteria.

Another method includes selectively and/or automatically controlling orlimiting allowable tag locations and tag size in a video based on where,such as what website, the video and accompanying tags are to bepublished. For example, videos playing on certain websites may requirethat tags be confined to a certain region of a video-display area. Themethod may further involve determining video boundaries associated witha video and adjusting moment of a tag based on the predeterminedboundaries.

Another method includes employing tag text to determine when aparticular product or item is being displayed in a video andautomatically selecting or adding an advertisement based on theparticular product or item.

Another method includes filtering or adjusting tag informationidentifying movement and location of the tag so that the tag does notmove outside of a predetermined region based on predetermined criteria.The predetermined criteria may include a publishing URL identifying awebsite to which the video and tag will be published.

Dataset Format and Use

In a preferred embodiment, a tag's definition within a dataset includesthree basic types of characteristics—design, action and content. Thedesign characteristics include visual features such as the size of atag, the tag's color, shape, opacity, etc. Action characteristicsdescribe a tag's translational movement behavior with respect to a videoto which the tag is applied. For example, a description of a tag'sappearance (“in point”), movement across a video area while the video isbeing played back (“path”), and disappearance (“out point”) aredescribed as the tag's action characteristics. A tag contentcharacteristic is optional and includes an indication of where or how toget tag information. In a simple text tag that has the appearance oftext inside a box or bubble (or merely floating text) the text itselfcan come from a design characteristic, or text attribute. This isreferred to as internal content since the tag's content is includedcompletely within a dataset. Alternatively, external text, symbols,pictures, logos, icons, or other image data can be referenced as anexternal file or network location so that tags can be created withstandard third-party image, audio and graphics programs and used withother characteristics in tag datasets.

Similarly, additional video or audio information can be referenced astag content so that a tag entry in a dataset can refer to an externalsource for such information. For example, an external video file can betreated as a tag within a dataset and be made to appear embedded withina primary video. The external video can be subjected to any of the tagcharacteristics described herein such as action characteristics to allowthe external video to be moved about the primary video, changing thedesign characteristics of the secondary video, etc. Audio voice-over canbe handled as a tag so that use of “in” and “out” points controls howthe audio is started and stopped while the primary video is playing.

FIG. 13 illustrates an example tag dataset format. It should be apparentthat many of the details of such a format are a matter of design choiceand may be modified, as desired, without departing from the scope of theinvention. Dataset 450 includes global information 452 such as a datasetID, version history and video ID. The dataset ID and video ID values canbe used in a manner described above to associate the dataset with aparticular video, or to otherwise allow selection of the dataset by auser, process or other mechanism. In particular embodiments both of thevalues need not be used, and other information can also be provided toassist with association and selection (e.g., sequence number, securityor access permissions or restrictions, etc.). Version historyinformation can include an indication of who created or possesses legalownership of the dataset, the time and manner of dataset creation andsubsequent modification, and other details about the history andmaintenance of the dataset.

In a preferred embodiment, a dataset object such as dataset 450 includestwo separate structures such as tables or arrays. A first structure isan action table 460 that includes information on characteristics dealingwith tag movement. A second structure is a design table 470 thatincludes information about characteristics dealing with the look orcontent of a tag. Design table 470 can also include animationinformation that is not translational such as transitions for appearingand disappearing tags (e.g., fade-in, fade-out, zoom-in, vibrating orbouncing, lighting effects, etc.). Note that the two-table structure andthe specific selection and arrangement of values therein represent butone type of organization for the dataset object. It should be apparentthat unless otherwise claimed, many variations of data design arepossible and may be within the scope of the invention.

Action table 460 includes multiple entries such as entries 462-468. Anynumber of entries can be used depending on the number of tag appearancesand/or movements that take place within a video. Each entry includes aname of a tag to which the appearance and movement described by theentry will apply. For example, entry 462 references a tag named“Vubble3”. The tag name is followed by waypoint definitions that specifypositions that the tag will occupy in the video area at specific timesin the video. Each time is in reference to a “playback head” or “pbhead”time that is maintained by the video playback engine or by an externalprogram or device that can provide such a time reference to the playbackengine. The waypoints are presented in a chronological top-down order.For example, entry 462 has a first time value called “pbhead_in” of 3.5which indicates that at 3.5 seconds after the start of the video the tagVubble3 first appears at position x=100, y=140. Similarly, the nextwaypoint shows that at “pbhead_mid” which has a value of 7.0 the tagwill be at the x,y position 150, 140. Interpolation routines act to movethe tag image from 100, 140 at 3.5 seconds to 150, 140 at 7.0 seconds.At 8.3 seconds the tag is at 150, 140 and at 10.5 seconds the tag hasbeen moved to 200, 200 where it is then removed from the display.

Note that other ways to measure playback time are possible. For example,a timer can generate time values. When playback of the video begins thecurrent timer value can be used as the start time of the video.Subsequent times can be relative to the timer or can be calculatedrelative to the video start time by subtracting the start time from acurrent time of the timer. Any other suitable way of deriving timevalues for purposes of synchronizing tags to the video may be used.

Design table 470 shows that the information to draw Vubble3 is includedin association with the Vubble3 entry in the design table. Values forbody color, body height, body width, body alpha (opacity), etc. can beincluded. Values for border color, thickness, corner roundness, etc. canalso be included along with a link or URL, tag author's name, contentcharacteristics, etc. Design table 470 shows that Vubble3's content istext that is stored in the design table. Characteristics of the textsuch as color, font, etc., can be provided as values associated with theVubble3 entry in the design table. Multiple entries in the action table460 can reference a single entry in the design table as shown whereentries 462 and 466 each reference Vubble3 in the design table. Thisallows multiple appearances and animations of a same tag design to beeasily implemented.

The entry Vubble2 in design table 470 shows a content reference for“EXTERNAL AUDIO” to audio object 480. The content reference can be afilename, object name, address, URL or other address or descriptor andmay reference an object at a remote location over a digital network suchas the Internet. When Vubble2 is referenced by an entry in the actiontable the external object can be accessed (or it could have beenpre-fetched) for download or streaming to play back or otherwise presentthe external object. Presentation of the external object can be byadditional parameters or values included in the design table. Forexample, external audio object 480 can be played back at a pbhead_intime specified in the action table at a volume setting determined by avalue associated with Vubble2 in the design table. Other types ofexternal objects can be referenced and used as tag content. For example,in addition to audio an external object can include video, images, text,animated images, etc.

Although embodiments of the invention are discussed primarily withrespect to video publishing, tag authoring, and presentations, any typeof visual GUI, publishing system, and playback system can be used toimplement features described herein and may be adapted for use withembodiments of the present invention. For example, animations, movies,pre-stored files, slide shows, Flash™ animation, etc. can be used withfeatures of the invention. The number and type of attributes or otherdata included in the tag database can vary, as desired.

Many other types of hardware and software platforms can be used toimplement the functionality described herein. For example, an authoringsystem or module can be included in a portable device such as a laptop,personal digital assistant (PDA), cell phone, game console, emaildevice, etc. In such a system or module, various constituent componentsof the system might be included in a single device. In other approaches,one or more of the components or modules can be separable or remote fromthe others. For example, tag data can reside on a storage device,server, or other device that is accessed over a network. In general, thefunctions described herein can be performed by any one or more devices,processes, subsystems, or components, at the same or different times,executing at one or more locations.

Generally, any type of playback device (e.g., computer system, set-topbox, DVD player, etc.), image format (Motion Picture Experts Group(MPEG), Quicktime™, audio-visual interleave (AVI), Joint PhotographicExperts Group (JPEG), motion JPEG, etc.), display method or device(cathode ray tube, plasma display, liquid crystal display (LCD), lightemitting diode (LED) display, organic light emitting display (OLED),electroluminescent, etc.) can be used to implement embodiments of thepresent invention. Any suitable source can be used to obtain playbackcontent such as a DVD, HD DVD, Blu-ray™ Disc, hard disk drive, videocompact disc (CD), fiber optic link, cable connection, radio-frequencytransmission, network connection, and so on, may also be used. Ingeneral, the audio/visual content, display and playback hardware,content format, delivery mechanism and other components and propertiesof the system can vary, as desired, and any suitable items andcharacteristics can be used.

Any specific hardware and software described herein are only presentedto provide a basic illustration of but one example of components andsubsystems that can be used to achieve certain functionality such asplayback of a video. It should be apparent that components and processescan be added to, removed from or modified from those shown in theFigures, or described in the text, herein.

Many variations are possible and many different types of DVD players orother systems for presenting audio/visual content can be used toimplement the functionality described herein. For example, a videoplayer can be included in a portable device such as a laptop, PDA, cellphone, game console, e-mail device, etc. The tag data, i.e., video-tagdata can reside on a storage device, server, or other device that isaccessed over another network. In general, the functions described canbe performed by any one or more devices, processes, subsystems, orcomponents, at the same or different times, executing at one or morelocations.

Accordingly, particular embodiments can provide for authoring and/orpublishing tags in a video. The video can be played back via a computer,DVD player, or other device. The playback device may supportautomatically capturing of screen snapshots in the accommodation of taginformation outside of a video play area. Further, while particularexamples have been described herein, other structures, arrangements,and/or approaches can be utilized in particular embodiments. The formatsfor input and output video can be of any suitable type.

Any suitable programming language can be used to implement features ofthe present invention including, e.g., Flash, Actionscript, C, C++,Java, Javascript, PL/I, assembly language, etc. Different programmingtechniques can be employed such as procedural or object oriented. Theroutines can execute on a single processing device or multipleprocessors. The order of operations described herein can be changed.Multiple steps can be performed at the same time. The flowchart sequencecan be interrupted. The routines can operate in an operating systemenvironment or as stand-alone routines occupying all, or a substantialpart, of the system processing.

Steps can be performed by hardware or software, as desired. Note thatsteps can be added to, taken from or modified from the steps in theflowcharts presented in this specification without deviating from thescope of the invention. In general, the flowcharts are only used toindicate one possible sequence of basic operations to achieve afunction.

In the description herein, numerous specific details are provided, suchas examples of components and/or methods, to provide a thoroughunderstanding of embodiments of the present invention. One skilled inthe relevant art will recognize, however, that an embodiment of theinvention can be practiced without one or more of the specific details,or with other apparatus, systems, assemblies, methods, components,materials, parts, and/or the like. In other instances, well-knownstructures, materials, or operations are not specifically shown ordescribed in detail to avoid obscuring aspects of embodiments of thepresent invention.

As used herein the various databases, application software or networktools may reside in one or more server computers and more particularly,in the memory of such server computers. As used herein, “memory” forpurposes of embodiments of the present invention may be any medium thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, system or device. The memory can be, by way of example onlybut not by limitation, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, system,device, propagation medium, or computer memory.

A “processor” or “process” includes any human, hardware and/or softwaresystem, mechanism or component that processes data, signals or otherinformation. A processor can include a system with a general-purposecentral processing unit, multiple processing units, dedicated circuitryfor achieving functionality, or other systems. Processing need not belimited to a geographic location, or have temporal limitations. Forexample, a processor can perform its functions in “real time,”“offline,” in a “batch mode,” etc. Portions of processing can beperformed at different times and at different locations, by different(or the same) processing systems.

Reference throughout this specification to “one embodiment,” “anembodiment,” or “a specific embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention and notnecessarily in all embodiments. Thus, respective appearances of thephrases “in one embodiment,” “in an embodiment,” or “in a specificembodiment” in various places throughout this specification are notnecessarily referring to the same embodiment. Furthermore, theparticular features, structures, or characteristics of any specificembodiment of the present invention may be combined in any suitablemanner with one or more other embodiments. It is to be understood thatother variations and modifications of the embodiments of the presentinvention described and illustrated herein are possible in light of theteachings herein and are to be considered as part of the spirit andscope of the present invention.

Embodiments of the invention may be implemented by using a programmedgeneral purpose digital computer, by using application specificintegrated circuits, programmable logic devices, field programmable gatearrays, optical, chemical, biological, quantum or nanoengineeredsystems, components and mechanisms may be used. In general, thefunctions of the present invention can be achieved by any means as isknown in the art. Distributed or networked systems, components andcircuits can be used. Communication, or transfer, of data may be wired,wireless, or by any other means.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures can also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application. It isalso within the spirit and scope of the present invention to implement aprogram or code that can be stored in a machine readable medium topermit a computer to perform any of the methods described above.

Additionally, any signal arrows in the drawings/Figures should beconsidered only as exemplary, and not limiting, unless otherwisespecifically noted. Furthermore, the term “or” as used herein isgenerally intended to mean “and/or” unless otherwise indicated.Combinations of components or steps will also be considered as beingnoted, where terminology is foreseen as rendering the ability toseparate or combine is unclear.

As used in the description herein and throughout the claims that follow,“a,” “an,” and “the” includes plural references unless the contextclearly dictates otherwise. Also, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

The foregoing description of illustrated embodiments of the presentinvention, including what is described in the Abstract, is not intendedto be exhaustive or to limit the invention to the precise formsdisclosed herein. While specific embodiments of, and examples for, theinvention are described herein for illustrative purposes only, variousequivalent modifications are possible within the spirit and scope of thepresent invention, as those skilled in the relevant art will recognizeand appreciate. As indicated, these modifications may be made to thepresent invention in light of the foregoing description of illustratedembodiments of the present invention and are to be included within thespirit and scope of the present invention.

Thus, while the present invention has been described herein withreference to particular embodiments thereof, a latitude of modification,various changes and substitutions are intended in the foregoingdisclosures, and it will be appreciated that in some instances somefeatures of embodiments of the invention will be employed without acorresponding use of other features without departing from the scope andspirit of the invention as set forth. Therefore, many modifications maybe made to adapt a particular situation or material to the essentialscope and spirit of the present invention. It is intended that theinvention not be limited to the particular embodiments disclosed,including the best mode or preferred embodiment(s) contemplated forcarrying out this invention, but that the invention will include any andall embodiments and equivalents falling within the scope of the appendedclaims.

1. A method for modifying a tag to be displayed during playback of avideo distributed over a computer network, the method being performed bya server computer on the computer network, the method comprising:comparing content of the tag against a database of one or more keywords,wherein the database is stored at the server computer; detecting atleast one matching word in both the content of the tag and the one ormore keywords; and performing a modification to data associated with thetag in response to detecting the at least one matching word.
 2. Themethod of claim 1, wherein performing a modification to data associatedwith the tag comprises removing the at least one matching word from thecontent of the tag so that the tag is displayed in a modified formwithout the at least one matching word during playback of the video. 3.The method of claim 1, wherein performing a modification to dataassociated with the tag comprises performing a modification so as toprevent the tag from being displayed during playback of the video. 4.The method of claim 3, further comprising: substituting a new tag inplace of the tag that is prevented from being displayed.
 5. The methodof claim 4, wherein the new tag comprises advertising information. 6.The method of claim 1, wherein performing a modification to dataassociated with the tag comprises adding to the tag a link to adestination so that content from the destination is displayed when thelink is activated.
 7. The method of claim 1, wherein the tag comprisescontent associated with one or more items in the video, and the contentis displayed in synchronization with playback of the video.
 8. Themethod of claim 1, wherein the one or more keywords comprise profanity.9. The method of claim 1, further comprising: receiving data associatedwith the tag, including tag content, from a source; and publishing thevideo in conjunction with the data associated with the tag, as modifiedby the modification, to one or more video distribution sites.
 10. Themethod of claim 9, wherein one or more of the database or themodification depends on an identity of at least one of the one or morevideo distribution sites.
 11. The method of claim 1, wherein thedatabase comprises one or more keywords relating to copyrightsassociated with the video.
 12. A server computer connected to a computernetwork, the network comprising at a tag-authoring computer thatgenerates at least one tag to be displayed during playback of a video,the network further comprising a plurality of computers configured todisplay the video with the at least one tag, the server computercomprising: a connection to the tag-authoring computer, the connectionbeing configured so that the server computer receives, from thetag-authoring computer, data associated with the at least one tag to bedisplayed during playback of the video; and a video tag filtering moduleconfigured to remove undesirable content from of the at least one tagaccording to a filtering criteria, thereby resulting in modified dataassociated with the at least one tag, wherein the server computerprovides, for viewing at the plurality of computers in conjunction withthe video, the at least one tag as modified by the tag filtering modulein accordance with the modified data so as not to include theundesirable content.
 13. The server computer of claim 12, wherein the atleast one tag comprises content associated with one or more items in thevideo, and the content is displayed in synchronization with playback ofthe video.
 14. The server computer of claim 12, wherein the undesirablecontent comprises profanity.
 15. The server computer of claim 12,wherein the undesirable content is content not authorized by copyright.16. The server computer of claim 12, further comprising: connections tothe plurality of computers configured to display the video, wherein theserver computer provides to the plurality of computers the video withthe at least one tag as modified by the tag filtering module inaccordance with the modified data associated with the at least one tagso as to cause display, at the plurality of computers, of the video withthe at least one tag modified so as to not include the undesirablecontent.
 17. The server computer of claim 12, wherein the servercomputer is part of a social networking site.
 18. The server computer ofclaim 12, wherein the network further comprises a video server separatefrom the server computer, the server computer provides to the videoserver the modified data associated with the at least one tag, and theplurality of computers configured to display the video with the at leastone tag is configured to access the video with the at least one tag viathe video server.
 19. The server computer of claim 18, wherein videoserver is part of a social networking site.
 20. A computer-readablemedium comprising instructions to be executed by a computer to cause thecomputer to modify a tag to be displayed during playback of a video, theinstructions comprising: instructions to compare content of the tagagainst a database of one or more keywords; instructions to detect atleast one matching word in both the content of the tag and the one ormore keywords; and instructions to perform a modification to dataassociated with the tag in response to detecting the at least onematching word, wherein the modification comprises removing the at leastone matching word from the content of the tag so that the tag isdisplayed in a modified form without the at least one matching wordduring playback of the video.